#specflow #我的青春小鳥一去不回來
之前用 NorthWind 來設計 specflow lab 的題目時,被一個地雷卡住花了我一整天的時間...
為什麼 specflow 出來的測試結果,明明 - 跟 + 看起來都一樣,卻一直跟我講結果不符合預期呢?
後來才發現,天殺的 CustomerID 的 type 是 nchar(5), 有空白跟沒空白的差異...
--
有此經驗後建議大家:
1. 沒特別需求,就不要開 char, nchar 這類的 type, application設計如果沒 trim() 到,會一整個找到死,尤其是拿來判斷是否相等的 case
2. specflow 的 then 驗證時,可以自己把 actual 結果 trim 掉,避免這無聊的問題。(但這會顯得只為了測試通過,而與需求不符合)
3. 當發生那種看起來一樣,實際卻不一樣的 case, 優先考慮是不是含空白或是特殊符號,可以貼到 notepad++ ,把顯示所有字元的功能打開,就會看到長不一樣。